#ifndef _GRAPHICSDATA_H_
#define _GRAPHICSDATA_H_

#include "kernel.h"

namespace WtfGraphics {
	/**
	 * A renderable data.
	 * Classes deriving from it must implemenet the render() function.
	 */
	class GraphicsData : public WtfEngine::DataObject
	{
	public:
		GraphicsData(const WtfEngine::StringPool::Entry& name = WtfEngine::StringPool::GetInstance()["undefined graphics data"])
			: WtfEngine::DataObject(name) {};
		virtual ~GraphicsData() {};

		virtual void render(){
			throw "Invalid operation: render() not supported";
		};
	
		DATA_OBJECT(GraphicsData, sizeof(GraphicsData));
	};
}

#endif /* _GRAPHICSDATA_H_ */

